Адміністрація вирішила продати даний сайт. За детальною інформацією звертайтесь за адресою: rozrahu@gmail.com

Лабораторна робота 9

Інформація про навчальний заклад

ВУЗ:
Національний університет Львівська політехніка
Інститут:
ІКНІ
Факультет:
Комп’ютерні науки
Кафедра:
Не вказано

Інформація про роботу

Рік:
2024
Тип роботи:
Лабораторна робота
Предмет:
Програмно-орієнтовані мови програмування
Варіант:
5

Частина тексту файла

1) послідовність слів, впорядкування за довжинами слів (якщо довжини збігаються, то за абетковим порядком); 2) нижній (від листків) зліва направо; 3) 3.1) надрукувати список подій, які відносяться до заданого часового проміжку та вказати їхню кількість; 3.2) вилучити всі вузли, які є листками дерева; 4) симетричний справа наліво; 5) вилучення вузлів з довгими словами.  / /******************************************************************* * Ти мусиш десь на компі зробити файл під назвою vvid в блокноті * * Вона має бути заповнена так: слово ентер слово ентер * * Після останнього слова нічого не ставити! * * * * Наприклад вміст файл * * * * sagrg * dgfd * dhfdg * jhkfgbj * lghlbjl * kjhbf * nbnb * jfkhg * hjxfg * ghfgjf * * dhyjg * fkfjk * kjlagfhg * jkhbf * uilgn * * * *******************************************************************/ //Підключаєм бібліотекі //<stdlib.h> для виділення пам"яті #include<stdio.h> #include<stdlib.h> #include<string.h>//Для пошуку покмбінації //MAX-Довжина слова #define MAX 10 //Структура дерева: слово і вказівники на менший і більший елемент typedef struct DER { char k[MAX]; struct DER *bil,*men; } der; //р-вказівник на корінь дерева der* p; int kil;//Для того щоб знати скільки слів вивели //Функція формування дерева void form(der* pn,der** pz) { int a,b,i; a=b=i=0;//Онулюєм if(*pz==NULL)//Якщо місце пусте вставляєм в нього новий елемент { *pz=pn; return; } while(pn->k[a]!='\0')//Рахуєм довжину нового слова a++; while((*pz)->k[b]!='\0')//Рахуєм довжину поточного слова b++; if(a==b)//Якщо довжина однакова перевіряєм по алфавіту { a=b=0; while(a==b)//Робим цикл доти доки коди символів небудуть різними { if(pn->k[i]=='\0'&&(*pz)->k[i]=='\0')//Якщо в обох словах є нуль символ значить вони одинакові { free(pn);//Видаляєм нове одинакове слово return; } a+=pn->k[i];//Сюда сумуєм коди символів нового речення b+=(*pz)->k[i++];//Сюда сумуєм коди символів поточного речення з дерева } } if(a<b) form(pn,&(*pz)->men);//Якщо нове слово по коду менше за поточне слово то йдем до меншого else form(pn,&(*pz)->bil);//наоборот } //Функція вводу з файла void vvid() { FILE* f; int i; char c; der* pn; f=fopen("C:\\pop\\ vvid.txt","r");//тут запхаєш свій шлях через "\\" і в кінці vvid.txt" while(!feof(f)) { pn=(der*)calloc(1,sizeof(der));//Виділяєм память для нового елемента pn->bil=pn->men=NULL;//Онулюєм pn->k[0]=NULL; // i=0; // while(1) { fscanf(f,"%c",&c);//Зчитуєм з файла посимвольно if(c!='\n'&&!feof(f))//Якщо с є ентор значчить кінець слова, якщо feof(f)-то кінец файла pn->k[i++]=c;//Записуєм посимвольно в наше слово else break; } pn->k[i]='\0';//Присвоюєм в кінці нульсимволь для того щоб знати де кінець слова form(pn,&p);//Добавляєм новий елемент в дерево } fclose(f);//Закриваєм відкритий файл } //Функція виводу дерева (нижній (від листків) зліва направо) void vuvid(der* pn) { if(pn->men!=NULL)//Якщо ще є менший йдем до нього vuvid(pn->men); if(pn->bil!=NULL)//Якщо ще є більший йдем до нього vuvid(pn->bil); puts(pn->k); } //Функція виводу слів по проміжку void promigok(int a,int b,der* pn) { int dov=0;//Змінна для довжини слова while(pn->k[dov]!='\0')//Рахуєм довжину нового слова dov++; if(dov>=a&&dov<=b)//Якщо довжина підходить { puts(pn->k);//виводим слово kil++;//Рахуєм кількість виведених слів } if(pn->men!=NULL)//Якщо є менший елемент йдем до нього promigok(a,b,pn->men); if(pn->bil!=NULL)//Якщо є менший елемент йдем до нього promigok(a,b,pn->bil); } //Функція видалення листків void lustki(der* pn) { if(pn->bil!=NULL)//Якщо є більши...
Антиботан аватар за замовчуванням

24.04.2014 23:04

Коментарі

Ви не можете залишити коментар. Для цього, будь ласка, увійдіть або зареєструйтесь.

Завантаження файлу

Якщо Ви маєте на своєму комп'ютері файли, пов'язані з навчанням( розрахункові, лабораторні, практичні, контрольні роботи та інше...), і Вам не шкода ними поділитись - то скористайтесь формою для завантаження файлу, попередньо заархівувавши все в архів .rar або .zip розміром до 100мб, і до нього невдовзі отримають доступ студенти всієї України! Ви отримаєте грошову винагороду в кінці місяця, якщо станете одним з трьох переможців!
Стань активним учасником руху antibotan!
Поділись актуальною інформацією,
і отримай привілеї у користуванні архівом! Детальніше

Оголошення від адміністратора

Антиботан аватар за замовчуванням

пропонує роботу

Admin

26.02.2019 12:38

Привіт усім учасникам нашого порталу! Хороші новини - з‘явилась можливість кожному заробити на своїх знаннях та вміннях. Тепер Ви можете продавати свої роботи на сайті заробляючи кошти, рейтинг і довіру користувачів. Потрібно завантажити роботу, вказати ціну і додати один інформативний скріншот з деякими частинами виконаних завдань. Навіть одна якісна і всім необхідна робота може продатися сотні разів. «Головою заробляти» продуктивніше ніж руками! :-)

Новини